#ifndef MY_INC_PHY_PHY_PARAMETER_H_
#define MY_INC_PHY_PHY_PARAMETER_H_

#define SIZE_COEFFICIENT \
    (float)(_2PI / (float)(Fs / Fn)) // 每个采样周期对应的系数，Fs / 50表示一个电网周期的采样数，2π / 这个值转换到弧度
// 正确方式：确保宏是完整的表达式
#define SIZE_SINE            ((uint32_t)(Fs / Fn))
#define Fn                   50U            // 电网频率或基波频率，单位Hz
#define Wn                   2.0f * _PI *Fn // 电网频率或基波频率，单位rad/s

/*******HRTIME配置*********/
#define Switch_Fs            50000U // 切换频率 51.2KHz
#define Repetition_Count     0x00U  // 重复计数，CubeMX配置中也会有一个重复计数，0x01表示2个重复计数
#define Fs                   50000U // 采样频率 25.6KHz

#define TS_10US              10e-6f  // 采样周期
#define TS_20US              20e-6f  // 采样周期
#define TS_40US              40e-6f  // 采样周期
#define TS_50US              50e-6f  // 采样周期
#define TS_100US             100e-6f // 采样周期

/*******内存段定义*********/
//#define CCMRAM               __attribute__((section(".ccmram")))

/*******限幅值*********/
#define PWM_PERIOD           54400                         // PWM周期
#define U_LIMIT_HIGH         (int32_t)(0.96f * PWM_PERIOD) // 上限值
#define U_LIMIT_LOW          (int32_t)(0.04f * PWM_PERIOD) // 下限值
#define U_LIMIT_ZERO         (int32_t)(300)

/*******半桥桥臂数量******** */
#define SINGLE_BRIDGE_ARM    (1U)
#define DOUBLE_BRIDGE_ARM    (2U)
#define TRIPLE_BRIDGE_ARM    (3U)
#define QUADRUPLE_BRIDGE_ARM (4U)
#define BRIDGE_NUMBER        DOUBLE_BRIDGE_ARM

#define CONTROLLER_NUMBER    2// 控制器数量

#endif /* Parameter_H_ */
